/**
 *  一句话思路：回文质数显然就是满足“回文”和“质数”两个条件。
 *              但如果直接遍历，数据量异常庞大，结果也是TLE。
 *              因此考虑剪掉不必要的循环。我们发现回文质数有几个特点：
 *              1. 除了2，不可能是偶数
 *              2. 除了11，位数不可能是偶数。
 *              证明：例如六位数的回文，假设为abccba = a*100001 + 10*b*1001 + 100*c*11
 *                  = a*(99990+11) + 10*b*(990+11) + 100*c*11 (该数必然能被11整除)
    解决所需数据结构+算法：
**/
#include<iostream>
using namespace std;

bool isOS(int x) { // 排除4位数和6位数
    if(x>=1000 && x<=9999)  return false;
    if(x>=100000 && x<= 999999) return false;
    return true;
}

bool isPrime(int x) {
    for(int i=2; i*i<=x; i++)
        if(x % i == 0)  return false;
    return true;
}

bool isHW(int x) {
    string str = to_string(x);
    int l = 0, r = str.length() - 1;
    while(l < r) {
        if(str.at(l) != str.at(r))  return false;
        l++, r--;
    }
    return true;
}

int main() {
    int x, y;
    cin >> x >> y;
    if(x%2 == 0)    x++;            // 把范围起点强行转为奇数
    if(y > 9999999) y = 9999999;    // 如果y很大，不用考虑八位数
    for(int i=x; i<=y; i+=2) { // 遍历范围内所有奇数
        if(!isOS(i))    continue;
        if(!isHW(i))    continue;
        if(!isPrime(i)) continue;
        cout << i << endl;
    }
    return 0;
}